﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>创建表单</title>
    <script type="text/javascript" src="../../Scripts/bootstrap/js/jquery.min.js"></script>
    <script src="../../Scripts/QueryString.js" type="text/javascript"></script>
    <link href="../../../DataUser/Style/ccbpm.css" rel="stylesheet" type="text/css" />
    <!-- 引用通用的js文件. -->
    <script type="text/javascript" src="../../Scripts/config.js"></script>
    <script type="text/javascript" src="../../Comm/Gener.js"></script>
    <script type="text/javascript" language="javascript">
        //页面启动函数.
        $(function () {

            $("#Msg").html("<img src=../../Img/loading.gif />&nbsp;正在加载,请稍后......");

            var frmType = GetQueryString("FrmType");
            if (frmType == null || frmType == "")
                frmType = '1';

            //创建表单类型.
            GenerBindEnumKey("DDL_FrmType", "FrmType", frmType);

            //创建数据源.
            GenerBindEntities("DDL_DBSrc", "BP.Sys.SFDBSrcs", "local");

            //  var sort = GetQueryString("FK_FrmSort");
            // $("#HD_FK_FormTree").val(sort);

            //创建表单树.
            // GenerBindEntities("DDL_FrmTree", "BP.WF.Template.SysFormTrees", sort);

            var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_CCFormDesigner");
            var data = handler.DoMethodReturnString("NewFrmGuide_Init");
            $("#Msg").html("");

            if (data.indexOf('err@') >= 0) {
                $("#Msg").html("<font color=red>" + data + "</font>");
                return;
            }

            data = JSON.parse(data);

            var tables = data["Tables"];
            GenerBindDDL("DDL_PTable", tables, "No", "Name", null);
            return;

            //            $.ajax({
            //                type: 'post',
            //                async: true,
            //                url: Handler + "?DoType=NewFrmGuide_Init&m=" + Math.random(),
            //                dataType: 'html',
            //                success: function (data) {

            //                    $("#Msg").html("");

            //                    if (data.indexOf('err@') >= 0) {
            //                        $("#Msg").html("<font color=red>" + data + "</font>");
            //                        return;
            //                    }

            //                    data = JSON.parse(data);

            //                    var tables = data["Tables"];
            //                    GenerBindDDL("DDL_PTable", tables, "No", "Name", null);
            //                    return;
            //                }
            //            });


            $("#Msg").html("");
            return;

        });

        function FrmTypeChange() {

            var frmType = $("#DDL_FrmType").val();

            $("#DDL_PTableModel").show();
            $("#Idx_6").show();
            $("#Idx_8").show();
            $("#idx_td_7").html("7");
            $("#OtherTd").html("9");

            document.getElementById("PTableName").innerHTML = "存储表";
            document.getElementById("PTableDesc").innerHTML = "数据要存储到那个表里？<br>默认与表单编号一致，指定的表名，必须是下划线或者字母开头，不能包含特殊字符，否则创建表失败。";

            if (frmType == "7") {
                document.getElementById("PTableName").innerHTML = "请输入实体类名";
                document.getElementById("PTableDesc").innerHTML = "该实体必须是以BP.开头的并且从实体BP.En.Entities上继承下来的. <br>比如:BP.Demo.Resumes";
                $("#Idx_6").hide();
                $("#Idx_8").hide();
                $("#idx_td_7").html("6");
                $("#OtherTd").html("7");
            }

            if (frmType == "3") {
                document.getElementById("PTableName").innerHTML = "请输入URL";
                document.getElementById("PTableDesc").innerHTML = "请输入嵌入式表单的URL.";
                $("#Idx_6").hide();
                $("#Idx_8").hide();
                $("#idx_td_7").html("6");
                $("#OtherTd").html("7");

                //隐藏TR
            }


        }

        //选择一个表.
        function DDL_PTable_Change(ddl) {
            var aa = document.getElementById(ddl);
            document.getElementById("TB_PTable").value = aa.value;
        }
    </script>
</head>
<body>
    <form id="cc">
    <table style="width: 95%;">
        <caption>
            创建独立表单</caption>
        <tr>
            <td class="Idx">
                1
            </td>
            <td>
                创建的表单类型
            </td>
            <td>
                <select name="DDL_FrmType" id="DDL_FrmType" onchange="FrmTypeChange()" />
            </td>
            <td>
                根据自己的业务场景需要选择相应的表单类型.
            </td>
        </tr>
        <!--
<tr>
<td class="Idx" > 2 </td>
<td > 数据源类型</td>
<td> <select name="DDL_DBSrc" id="DDL_DBSrc" />  </td>
<td>该表单要创建到那个数据源上？</td>
</tr>
-->
        <!--
<tr>
<td class="Idx" > 3 </td>
<td > 节点位置</td>
<td> <select name="DDL_FrmTree" id="DDL_FrmTree" />  </td>
<td>保存到表单树的位置。</td>
</tr>-->
        <tr>
            <td class="Idx">
                4
            </td>
            <td>
                表单名称
            </td>
            <td>
                <input type="text" id="TB_Name" name="TB_Name" onblur="GenerPinYin()" style="width: 100%;" />
            </td>
            <td>
                表单的名称，允许重复，允许多个表单映射到一张表上。
            </td>
        </tr>
        <tr>
            <td class="Idx">
                5
            </td>
            <td>
                表单编号(必须是字母或者下划线组合)
            </td>
            <td>
                <input type="text" id="TB_No" name="TB_No" style="width: 100%;" />
            </td>
            <td>
                <input id="RB_ZZMM_0" type="radio" name="RB_ZZMM" value="0" checked="true" onclick="GenerPinYin()" /><label
                    for="RB_ZZMM_0" onclick="GenerPinYin()">全拼</label>
                <input id="RB_ZZMM_1" type="radio" name="RB_ZZMM" value="1" onclick="GenerPinYin()" /><label
                    for="RB_ZZMM_1" onclick="GenerPinYin()">简拼</label>
            </td>
        </tr>
        <tr id="Idx_6">
            <td class="Idx">
                6
            </td>
            <td>
                <div>
                    数据表存储类型</div>
            </td>
            <td>
                <select id="DDL_PTableModel" name="DDL_PTableModel">
                    <option value="0">自定存储表 </option>
                    <option value="1">从数据库中指定，可以修改数据库结构。 </option>
                    <option value="2">从数据库中指定，不允许修改数据库结构。 </option>
                </select>
            </td>
            <td>
                <div>
                    确定后，不允许修改。</div>
            </td>
        </tr>
        <tr id="Idx_7">
            <td class="Idx" id="idx_td_7">
                7
            </td>
            <td>
                <div id="PTableName">
                    自定义存储表
                </div>
            </td>
            <td>
                <input type="text" id="TB_PTable" name="TB_PTable" style="width: 100%;" />
            </td>
            <td>
                <div id="PTableDesc">
                    数据要存储到那个表里？</div>
            </td>
        </tr>
        <tr id="Idx_8">
            <td class="Idx">
                8
            </td>
            <td>
                <div id="Div1">
                    本机已存在的表
                </div>
            </td>
            <td>
                <select id="DDL_PTable" name="DDL_PTable" onchange="DDL_PTable_Change(this.id)">
                </select>
            </td>
            <td>
                <div id="Div2">
                    请选择系统存在的表，对后两项有效？</div>
            </td>
        </tr>
        <tr>
            <td class="Idx" id="OtherTd">
                9
            </td>
            <td>
            </td>
            <td colspan="2">
                <input type="button" value="创建" onclick="Save()" id="Btn_Save" />
                <script type="text/javascript">

                    function GenerPinYin() {

                        //是否是全拼.
                        var isQuanPin = 0;
                        if (document.getElementById("RB_ZZMM_0").checked == true)
                            isQuanPin = 1;

                        // var name = $('#TB_Nam').val();
                        var name = document.getElementById("TB_Name").value;
                        if (name == "")
                            return;

                        var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_CCFormDesigner");
                        handler.AddPara("IsQuanPin", isQuanPin);
                        handler.AddPara("TB_Name", encodeURIComponent(name));
                        var data = handler.DoMethodReturnString("NewFrmGuide_GenerPinYin");

                        $("#Msg").html("");

                        if (data.indexOf('err@') >= 0) {
                            $("#Msg").html("<font color=red>" + data + "</font>");
                            return;
                        }

                        $('#TB_No').val("CCFrm_" + data);
                        var frmType = $("#DDL_FrmType").val();
                        if (frmType != "3" && frmType != "7")
                            $('#TB_PTable').val("CCFrm_" + data);
                        return;
                    }

                    function Save() {

                        $("#Msg").html("正在创建,请稍后......");

                        var name = document.getElementById("TB_Name").value;
                        var no = document.getElementById("TB_No").value;
                        var pTable = document.getElementById("TB_PTable").value;

                        if (name == "" || no == "" || pTable == "") {
                            $("#Msg").html("");
                            alert('@请输入必填的字段.');
                            return;
                        }


                        var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_CCFormDesigner");
                        handler.AddFormData();
                        handler.AddUrlData();
                        var data = handler.DoMethodReturnString("NewFrmGuide_Create");

                        if (data.indexOf('err@') >= 0) {
                            $("#Msg").html("<font color=red>" + data + "</font>");
                            return;
                        }

                        $("#Msg").html("<font color=green>" + data + "</font>");
                        data = data.replace('url@', '');

                        try {

                            //表单库增加表单节点
                            if (typeof window.parent.AppendFrmToFormTree != "undefined") {
                                // var sort = $("#HD_FK_FormTree").val();
                                var sort = GetQueryString("FK_FrmSort"); // $("#HD_FK_FormTree").val();
                                window.parent.AppendFrmToFormTree(sort, no, name);
                            }

                            if (typeof window.parent.TabCloseByTitle != "undefined") {
                                //需要延时关闭，不可立即关闭。
                                setTimeout("window.parent.TabCloseByTitle('新建表单')", 1000);
                            }

                        } catch (e) {

                        }

                        //切换页面
                        window.location.href = data;
                        return;
                    }
                </script>
            </td>
        </tr>
    </table>
    <div id="Msg">
    </div>
    <input type="hidden" id="HD_FK_FormTree" name="HD_FK_FormTree" />
    <!--
<fieldset>
<legend> 帮助</legend>

1. 如果普通类型的字段：身高(float)，年龄(int)，地址(string)，电话(string)，就不用配置。
2. 金额类型  费用@DType=Money
3, 枚举类型. 性别@0=女@1=男
4, 外键类型.   岗位@Table=Port_Station@No=BianHao@Name=MingCheng
5, Boolen.    是否符合要求@DType=Boolen
6. 日期类型:      出生日期@DType=Date   2017-11-12
7. 日期时间类型:  发生时间@DType=DateTime   2017-11-12 12:01
4, 外键扩展类型.  人员$SELECT No,Name from mytable where xxx='@WebUser.FK_Dept' and myfiel='@MainTableField'


自由表单的数据存储格式:

<br />
枚举值:
性别@XB;@0=女@1=男
<br />

外键:
岗位@Table=Port_Station@No=BianHao@Name=MingCheng
<br />


日期:
出生日期@DType=Date

<br />

日期时间:
发生时间@DType=DateTime

<br />

金额:
费用@DType=Money

<br />

Boolen类型:
是否符合要求@DType=Boolen

</fieldset>-->
    </form>
</body>
</html>
